
KUBE_APISERVER=${2:-"https://apiserver.kube.cluster:16443"}

KUBE_SSL_DIR=/etc/kubernetes/ssl
KUBE_CONFIG_DIR=/opt/kubernetes/kubeconfig

mkdir -p ${KUBE_CONFIG_DIR}

#创建 TLS Bootstrapping Token
BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')

echo "token: ${BOOTSTRAP_TOKEN}"
#生成token.csv文件
cat > /opt/kubernetes/cfg/token.csv <<EOF
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
EOF

#创建 kubelet bootstrapping kubeconfig 文件
# 设置集群参数
/opt/kubernetes/bin/kubectl config set-cluster kubernetes \
  --certificate-authority=${KUBE_SSL_DIR}/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=${KUBE_CONFIG_DIR}/bootstrap.kubeconfig

# 设置客户端认证参数
/opt/kubernetes/bin/kubectl config set-credentials kubelet-bootstrap \
  --token=${BOOTSTRAP_TOKEN} \
  --kubeconfig=${KUBE_CONFIG_DIR}/bootstrap.kubeconfig

# 设置上下文参数
/opt/kubernetes/bin/kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=${KUBE_CONFIG_DIR}/bootstrap.kubeconfig  

# 设置默认上下文
/opt/kubernetes/bin/kubectl config use-context default --kubeconfig=${KUBE_CONFIG_DIR}/bootstrap.kubeconfig

#创建 kube-proxy kubeconfig 文件
# 设置集群参数
/opt/kubernetes/bin/kubectl config set-cluster kubernetes \
  --certificate-authority=${KUBE_SSL_DIR}/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=${KUBE_CONFIG_DIR}/kube-proxy.kubeconfig

# 设置客户端认证参数
/opt/kubernetes/bin/kubectl config set-credentials kube-proxy \
  --client-certificate=${KUBE_SSL_DIR}/client.pem \
  --client-key=${KUBE_SSL_DIR}/client-key.pem \
  --embed-certs=true \
  --kubeconfig=${KUBE_CONFIG_DIR}/kube-proxy.kubeconfig


# 设置上下文参数
/opt/kubernetes/bin/kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=${KUBE_CONFIG_DIR}/kube-proxy.kubeconfig

# 设置默认上下文
/opt/kubernetes/bin/kubectl config use-context default --kubeconfig=${KUBE_CONFIG_DIR}/kube-proxy.kubeconfig

echo -e "\033[42;37m==bootstraping生成完成===============================================================================\033[0m"
